package com.group7.mall.service;

import com.group7.mall.dto.GoodsAddDto;
import com.group7.mall.dto.GoodsSpecificationsDto;
import com.group7.mall.dto.SellerGoodsDetailDto;
import com.group7.mall.dto.SellerGoodsPreviewDto;
import com.group7.mall.entity.TbGoods;
import com.group7.mall.req.SellerGoodsPageRequest;
import com.group7.mall.resp.SellerGoodsPageResponse;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestBody;

import java.io.IOException;
import java.util.List;

public interface SellerGoodsService {

    Integer updateUnbanGoodsType(List<GoodsSpecificationsDto> goodsSpecificationsDtoList);

    TbGoods queryById(Integer goodsId);

    SellerGoodsDetailDto getGoodsImages(SellerGoodsDetailDto sellerGoodsDetailDto);

    SellerGoodsDetailDto getGoodsSpecificationsDto(SellerGoodsDetailDto sellerGoodsDetailDto);

    SellerGoodsDetailDto getGoodsParameter(SellerGoodsDetailDto sellerGoodsDetailDto);

    Integer softDeleteGoods(TbGoods tbGoods);

    Integer banGoods(TbGoods tbGoods) throws IOException;

    Integer unbanGoods(TbGoods tbGoods) throws IOException;

    SellerGoodsPageResponse<SellerGoodsPreviewDto> sellerShowGoodsByPage(SellerGoodsPageRequest sellerGoodsPageRequest);

    TbGoods sellerAddGoods(GoodsAddDto goodsAddDto);

    int deleteAllGoodsParameter(Integer goodsId);

    int deleteAllGoodsType(Integer goodsId);

    int updateAllGoodsInformation(GoodsAddDto goodsAddDto) throws IOException;

    GoodsAddDto addGoodsAttribute(GoodsAddDto goodsAddDto);

    GoodsAddDto addGoodsParameter(GoodsAddDto goodsAddDto);

    GoodsAddDto addGoodsType(GoodsAddDto goodsAddDto);

    GoodsAddDto addGoodsInventoryPrice(GoodsAddDto goodsAddDto);

    GoodsAddDto addGoodsParameterAndImages(GoodsAddDto goodsAddDto) throws IOException;

}
